package com.ruoyi.common.core.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TimeUtils {

    public static long getTimestamp() {
        Calendar calendar = Calendar.getInstance();
        //东八区
        calendar.setTimeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Shanghai")));
        return calendar.getTime().getTime();

    }

    public static int getMonth(Long reportDate,String formate) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(formate); // 日期格式
        Date date = sdf.parse(String.valueOf(reportDate)); // 将时间值转换为日期对象
        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
        return month;
    }
    public static int getMonth(String reportDate,String formate) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(formate); // 日期格式
        Date date = sdf.parse(String.valueOf(reportDate)); // 将时间值转换为日期对象
        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
        return month;
    }



public static String getCurrentDate(){
    // 获取当前日期
    LocalDate currentDate = LocalDate.now();

    // 定义日期格式化器
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

    // 将当前日期格式化为指定格式的字符串
    String formattedDate = currentDate.format(formatter);
    return formattedDate;
}
    public static String getStringDate(Date date){
        // 获取当前日期

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
        return formattedDate;
    }

    public static Long getStringDateToLong(Date date){
        // 获取当前日期

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String formattedDate = sdf.format(date);
        System.out.println(formattedDate);
        return Long.parseLong(formattedDate);
    }

    public static void main(String[] args) throws ParseException {
//        long time = 20240112L; // 示例时间值
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); // 日期格式
//        Date date = sdf.parse(String.valueOf(time)); // 将时间值转换为日期对象
//        int month = date.getMonth() + 1; // 获取月份，注意getMonth()返回的是0-11的整数，所以要加1
//        int month=getMonth("2024-01-16","yyyy-MM-dd");
//        System.out.println("月份: " + month); // 输出结果


          int s= getMonth("20240331","yyyyMMdd");
        System.out.println(s);

    }
}
